/*
 * XML Type:  EStructuralFeature
 * Namespace: http://www.eclipse.org/emf/2002/Ecore
 * Java type: org.eclipse.emf.x2002.ecore.EStructuralFeature
 *
 * Automatically generated - do not modify.
 */
package org.eclipse.emf.x2002.ecore.impl;
/**
 * An XML EStructuralFeature(@http://www.eclipse.org/emf/2002/Ecore).
 *
 * This is a complex type.
 */
public class EStructuralFeatureImpl extends org.eclipse.emf.x2002.ecore.impl.ETypedElementImpl implements org.eclipse.emf.x2002.ecore.EStructuralFeature
{
    private static final long serialVersionUID = 1L;
    
    public EStructuralFeatureImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName CHANGEABLE$0 = 
        new javax.xml.namespace.QName("", "changeable");
    private static final javax.xml.namespace.QName VOLATILE$2 = 
        new javax.xml.namespace.QName("", "volatile");
    private static final javax.xml.namespace.QName TRANSIENT$4 = 
        new javax.xml.namespace.QName("", "transient");
    private static final javax.xml.namespace.QName DEFAULTVALUELITERAL$6 = 
        new javax.xml.namespace.QName("", "defaultValueLiteral");
    private static final javax.xml.namespace.QName DEFAULTVALUE$8 = 
        new javax.xml.namespace.QName("", "defaultValue");
    private static final javax.xml.namespace.QName UNSETTABLE$10 = 
        new javax.xml.namespace.QName("", "unsettable");
    private static final javax.xml.namespace.QName DERIVED$12 = 
        new javax.xml.namespace.QName("", "derived");
    
    
    /**
     * Gets the "changeable" attribute
     */
    public boolean getChangeable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(CHANGEABLE$0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_default_attribute_value(CHANGEABLE$0);
            }
            if (target == null)
            {
                return false;
            }
            return target.getBooleanValue();
        }
    }
    
    /**
     * Gets (as xml) the "changeable" attribute
     */
    public org.eclipse.emf.x2002.ecore.EBoolean xgetChangeable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(CHANGEABLE$0);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EBoolean)get_default_attribute_value(CHANGEABLE$0);
            }
            return target;
        }
    }
    
    /**
     * True if has "changeable" attribute
     */
    public boolean isSetChangeable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(CHANGEABLE$0) != null;
        }
    }
    
    /**
     * Sets the "changeable" attribute
     */
    public void setChangeable(boolean changeable)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(CHANGEABLE$0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(CHANGEABLE$0);
            }
            target.setBooleanValue(changeable);
        }
    }
    
    /**
     * Sets (as xml) the "changeable" attribute
     */
    public void xsetChangeable(org.eclipse.emf.x2002.ecore.EBoolean changeable)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(CHANGEABLE$0);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().add_attribute_user(CHANGEABLE$0);
            }
            target.set(changeable);
        }
    }
    
    /**
     * Unsets the "changeable" attribute
     */
    public void unsetChangeable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(CHANGEABLE$0);
        }
    }
    
    /**
     * Gets the "volatile" attribute
     */
    public boolean getVolatile()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(VOLATILE$2);
            if (target == null)
            {
                return false;
            }
            return target.getBooleanValue();
        }
    }
    
    /**
     * Gets (as xml) the "volatile" attribute
     */
    public org.eclipse.emf.x2002.ecore.EBoolean xgetVolatile()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(VOLATILE$2);
            return target;
        }
    }
    
    /**
     * True if has "volatile" attribute
     */
    public boolean isSetVolatile()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(VOLATILE$2) != null;
        }
    }
    
    /**
     * Sets the "volatile" attribute
     */
    public void setVolatile(boolean xvolatile)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(VOLATILE$2);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(VOLATILE$2);
            }
            target.setBooleanValue(xvolatile);
        }
    }
    
    /**
     * Sets (as xml) the "volatile" attribute
     */
    public void xsetVolatile(org.eclipse.emf.x2002.ecore.EBoolean xvolatile)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(VOLATILE$2);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().add_attribute_user(VOLATILE$2);
            }
            target.set(xvolatile);
        }
    }
    
    /**
     * Unsets the "volatile" attribute
     */
    public void unsetVolatile()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(VOLATILE$2);
        }
    }
    
    /**
     * Gets the "transient" attribute
     */
    public boolean getTransient()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TRANSIENT$4);
            if (target == null)
            {
                return false;
            }
            return target.getBooleanValue();
        }
    }
    
    /**
     * Gets (as xml) the "transient" attribute
     */
    public org.eclipse.emf.x2002.ecore.EBoolean xgetTransient()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(TRANSIENT$4);
            return target;
        }
    }
    
    /**
     * True if has "transient" attribute
     */
    public boolean isSetTransient()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(TRANSIENT$4) != null;
        }
    }
    
    /**
     * Sets the "transient" attribute
     */
    public void setTransient(boolean xtransient)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TRANSIENT$4);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(TRANSIENT$4);
            }
            target.setBooleanValue(xtransient);
        }
    }
    
    /**
     * Sets (as xml) the "transient" attribute
     */
    public void xsetTransient(org.eclipse.emf.x2002.ecore.EBoolean xtransient)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(TRANSIENT$4);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().add_attribute_user(TRANSIENT$4);
            }
            target.set(xtransient);
        }
    }
    
    /**
     * Unsets the "transient" attribute
     */
    public void unsetTransient()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(TRANSIENT$4);
        }
    }
    
    /**
     * Gets the "defaultValueLiteral" attribute
     */
    public java.lang.String getDefaultValueLiteral()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(DEFAULTVALUELITERAL$6);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "defaultValueLiteral" attribute
     */
    public org.eclipse.emf.x2002.ecore.EString xgetDefaultValueLiteral()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EString target = null;
            target = (org.eclipse.emf.x2002.ecore.EString)get_store().find_attribute_user(DEFAULTVALUELITERAL$6);
            return target;
        }
    }
    
    /**
     * True if has "defaultValueLiteral" attribute
     */
    public boolean isSetDefaultValueLiteral()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(DEFAULTVALUELITERAL$6) != null;
        }
    }
    
    /**
     * Sets the "defaultValueLiteral" attribute
     */
    public void setDefaultValueLiteral(java.lang.String defaultValueLiteral)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(DEFAULTVALUELITERAL$6);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(DEFAULTVALUELITERAL$6);
            }
            target.setStringValue(defaultValueLiteral);
        }
    }
    
    /**
     * Sets (as xml) the "defaultValueLiteral" attribute
     */
    public void xsetDefaultValueLiteral(org.eclipse.emf.x2002.ecore.EString defaultValueLiteral)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EString target = null;
            target = (org.eclipse.emf.x2002.ecore.EString)get_store().find_attribute_user(DEFAULTVALUELITERAL$6);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EString)get_store().add_attribute_user(DEFAULTVALUELITERAL$6);
            }
            target.set(defaultValueLiteral);
        }
    }
    
    /**
     * Unsets the "defaultValueLiteral" attribute
     */
    public void unsetDefaultValueLiteral()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(DEFAULTVALUELITERAL$6);
        }
    }
    
    /**
     * Gets the "defaultValue" attribute
     */
    public java.lang.String getDefaultValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(DEFAULTVALUE$8);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "defaultValue" attribute
     */
    public org.eclipse.emf.x2002.ecore.EJavaObject xgetDefaultValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EJavaObject target = null;
            target = (org.eclipse.emf.x2002.ecore.EJavaObject)get_store().find_attribute_user(DEFAULTVALUE$8);
            return target;
        }
    }
    
    /**
     * True if has "defaultValue" attribute
     */
    public boolean isSetDefaultValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(DEFAULTVALUE$8) != null;
        }
    }
    
    /**
     * Sets the "defaultValue" attribute
     */
    public void setDefaultValue(java.lang.String defaultValue)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(DEFAULTVALUE$8);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(DEFAULTVALUE$8);
            }
            target.setStringValue(defaultValue);
        }
    }
    
    /**
     * Sets (as xml) the "defaultValue" attribute
     */
    public void xsetDefaultValue(org.eclipse.emf.x2002.ecore.EJavaObject defaultValue)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EJavaObject target = null;
            target = (org.eclipse.emf.x2002.ecore.EJavaObject)get_store().find_attribute_user(DEFAULTVALUE$8);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EJavaObject)get_store().add_attribute_user(DEFAULTVALUE$8);
            }
            target.set(defaultValue);
        }
    }
    
    /**
     * Unsets the "defaultValue" attribute
     */
    public void unsetDefaultValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(DEFAULTVALUE$8);
        }
    }
    
    /**
     * Gets the "unsettable" attribute
     */
    public boolean getUnsettable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(UNSETTABLE$10);
            if (target == null)
            {
                return false;
            }
            return target.getBooleanValue();
        }
    }
    
    /**
     * Gets (as xml) the "unsettable" attribute
     */
    public org.eclipse.emf.x2002.ecore.EBoolean xgetUnsettable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(UNSETTABLE$10);
            return target;
        }
    }
    
    /**
     * True if has "unsettable" attribute
     */
    public boolean isSetUnsettable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(UNSETTABLE$10) != null;
        }
    }
    
    /**
     * Sets the "unsettable" attribute
     */
    public void setUnsettable(boolean unsettable)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(UNSETTABLE$10);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(UNSETTABLE$10);
            }
            target.setBooleanValue(unsettable);
        }
    }
    
    /**
     * Sets (as xml) the "unsettable" attribute
     */
    public void xsetUnsettable(org.eclipse.emf.x2002.ecore.EBoolean unsettable)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(UNSETTABLE$10);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().add_attribute_user(UNSETTABLE$10);
            }
            target.set(unsettable);
        }
    }
    
    /**
     * Unsets the "unsettable" attribute
     */
    public void unsetUnsettable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(UNSETTABLE$10);
        }
    }
    
    /**
     * Gets the "derived" attribute
     */
    public boolean getDerived()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(DERIVED$12);
            if (target == null)
            {
                return false;
            }
            return target.getBooleanValue();
        }
    }
    
    /**
     * Gets (as xml) the "derived" attribute
     */
    public org.eclipse.emf.x2002.ecore.EBoolean xgetDerived()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(DERIVED$12);
            return target;
        }
    }
    
    /**
     * True if has "derived" attribute
     */
    public boolean isSetDerived()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(DERIVED$12) != null;
        }
    }
    
    /**
     * Sets the "derived" attribute
     */
    public void setDerived(boolean derived)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(DERIVED$12);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(DERIVED$12);
            }
            target.setBooleanValue(derived);
        }
    }
    
    /**
     * Sets (as xml) the "derived" attribute
     */
    public void xsetDerived(org.eclipse.emf.x2002.ecore.EBoolean derived)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(DERIVED$12);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().add_attribute_user(DERIVED$12);
            }
            target.set(derived);
        }
    }
    
    /**
     * Unsets the "derived" attribute
     */
    public void unsetDerived()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(DERIVED$12);
        }
    }
}
